The present invention relates generally to bus bridges, and more particularly, to a method and apparatus for distributing a cycle clock to a plurality of serial bus nodes (bridge portals) of a plurality of IEEE 1394 serial local buses.
The IEEE 1394 standard (hereinafter sometimes referred to simply as "IEEE 1394 ") defines a serial bus technology for interconnecting consumer electronics and computer products, such as digital TV, PCs, digital VCRs, digital camcorders, printers, fax machines, etc. IEEE 1394 (sometimes referred to as "firewire") is currently the most widely-accepted high-speed digital interconnect technology for connecting consumer electronics and computer products, as it is low-cost, flexible, and easy-to-use. The basic IEEE 1394 standard defines serial data rates of 100 Mbps, 200 Mbps, and 400 Mbps. A new IEEE 1394 sub-group (known as "IEEE p1394.b") is currently working on a backward-compatible extension to serial data rates of up to 3.2 Gbps. IEEE 1394 can support both asynchronous and isochronous data, thus making it ideally suitable for multimedia applications. It is stated in the April 1997 issue of IEEE Spectrum that "[w]hen the information superhighway goes multimedia, experts predict that 1394 will pave the highway's first and the last 3 meters."
IEEE 1394 currently defines a maximum wired distance or length of 4.5 meters. Thus, intrinsically, an IEEE 1394 serial bus can only be used to interconnect components which are relatively close together. Such a system of interconnected components which are close together is commonly referred to as a "cluster". An exemplary cluster in a residential environment is a "multimedia island" such as a home entertainment cluster, a home computing cluster, a bedroom cluster, etc.
As depicted in FIG. 1, it is possible to interconnect clusters via a wired or wireless connection. Presently, there are two main approaches to extending the IEEE 1394 serial bus within a wired infrastructure. One approach, currently under consideration by the IEEE p1394.b sub-group, is to extend the IEEE 1394 serial bus by using plastic-optical-fiber (POF) or unshielded twisted pair (UTP Category 5) transmission lines to implement a wired long distance. This type of extension can reach a distance of 50-100 meters. Another approach, currently under consideration by the IEEE p1394.1 sub-group, is to extend the IEEE 1394 serial bus by creating a wired "bridge" between two different serial bus segments or clusters.
With continuing reference to FIG. 1, another approach to extending the IEEE 1394 serial bus is to create a wireless "bridge" between clusters. That may promise ease-of-use and the flexibility associated with an IEEE 1394 network. In general, it can be expected that wired IEEE 1394 bridges will be the pre-dominant approach within new residential buildings since IEEE 1394 "outlets" may be installed within every room. However, retrofitting wired IEEE 1394 bridges in existing residences may prove cost-prohibitive for many residences due to the extensive rewiring which will be required. Thus, for such existing residences, wireless IEEE 1394 bridges, if sufficiently low-cost, may provide a suitable alternative. Furthermore, it is expected that both wired and wireless solutions to extending local IEEE 1394 serial buses will co-exist in a complementary fashion within the residential environment.
It should be noted that wireless bridges have inherent drawbacks. Namely, wireless bridges mandate much lower data transmission rates than wired bridges, due to the inherent complexity of implementing high-speed wireless connections. Further, wireless bridges are not cost-effectively scalable to higher data rates vis-a-vis wired bridges. This is primarily because the wireless frequency spectrum is a shared commodity subject to FCC regulations regarding its use. For example, use of the 2.4 GHz band is restricted to spread-spectrum communications, hence restricting the available data rate to be 2-4 Mbps (IEEE 802.11). Higher data rate (about 25-50 Mbps) transmissions are possible using wireless asynchronous transfer mode (WATM) technology. However, such higher data rate transmissions using WATM technology must use the NII band between 5.15-5.35 and 5.725-5.825 GHz, which is significantly more expensive to implement since the RF technology for these frequencies is not yet mature.
From the above, it can be appreciated that wireless IEEE 1394 bridges can use a multiplicity of data rates, thereby imposing a requirement that wireless IEEE 1394 bridges be capable of supporting multiple data rates.
With reference now to FIG. 2, the general architecture of an IEEE 1394 bridge will now be described. More particularly, the IEEE 1394 bridge 20 includes two or more bridge portals 22, an implementation-specific switching network 25 having subsystems 24 for the respective bridge portals, and a cycle clock 26. Each bridge portal 22 is a separate serial bus node which responds to serial bus read, write and lock requests from a respective local IEEE 1394 serial bus 30 connected thereto, as described in the document P1394, Draft 8.0v4, Nov. 21, 1995, the disclosure of which is incorporated herein by reference. Each bridge portal 22 monitors all serial bus packets, both asynchronous and isochronous, in order to determine which packets, if any, are to be routed through the switching fabric 24 to another bridge portal 22. The switching network 24 which interconnects the bridge portals 22 is capable of transferring any serial bus packets from one bridge portal 22 to any other bridge portal 22, using wired and/or wireless data transmission means. Within a local IEEE 1394 serial bus, it is necessary that a common cycle clock be distributed to all nodes on that bus. The primary reason for this synchronization requirement is to enable timestamping of real-time data at the source, whereby this timestamp can be used to significantly reduce the timing jitter which arises due to the fact that the network is not always available for transmission (because it is shared).
In a local IEEE 1394 serial bus, a cycle master (or "root node") performs this function. The cycle master is responsible for synchronizing all nodes connected to the local bus to a 125 .mu.s cycle clock. At the start of every cycle, the cycle master sends a special asynchronous packet, called the "cycle.sub.-- start packet", to each of the nodes. Each cycle.sub.-- start packet contains the current bus.sub.-- time, and is written into a cycle time register (CTR) of each node. Because the communication channel may be "busy" at the time the cycle master attempts to send the cycle.sub.-- start packet (e.g., some user/node may be transmitting some data at that particular time), it is possible that the transmission of the cycle.sub.-- start packet will be delayed by the time that the cycle master has to wait until the blocking transmission ends and the communication channel becomes available. Because the cycle master has priority over all other nodes, such inevitable delays are minimized. Each node that receives the cycle.sub.-- start packet must immediately reset its counter, so that all nodes are synchronized to the same cycle.
This cycle clock must now be transmitted to the nodes of other serial buses via the IEEE 1394 bridge which, as previously discussed, can be implemented using wired or wireless transmission at a multiplicity of possible data rates. Currently, the IEEE p1394.1 sub-group does not consider the transmission of the cycle clock as part of its work, and hence, no documentation is currently available on how to propagate this cycle clock.
As described previously, in an IEEE 1394 bridge, all bridge portals are nodes on respective local IEEE 1394 serial buses. Within one of the IEEE 1394 serial buses connected to the bridge is a so-called "cycle monster", which is a node from which the cycle clock is propagated over all of the serial buses. It should be noted that it is not necessary that the cycle monster be a bridge portal. In general, the bridge portal which is connected to the IEEE 1394 serial bus having the cycle monster is called the "cycle monster portal". It should also be noted that all bridge portals, except possibly the cycle monster portal, are cycle masters.
All of the bridge portals in the IEEE 1394 serial bus bridge must be synchronized to a common cycle clock in order for the bridge to support isochronous routing of real-time data. Thus, what is required is a method of distributing the cycle clock to meet this synchronization requirement while also minimizing the timing jitter resulting from the use of different wired or wireless switching fabrics (which are implementation-specific, and thus, varied). The present invention fulfills these requirements.